package com.example.administrator.dagger2test;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;

import com.example.administrator.dagger2test.appmodule.ActivityMoudule;
import com.example.administrator.dagger2test.appmodule.AppComponent;
import com.example.administrator.dagger2test.appmodule.AppModule;
import com.example.administrator.dagger2test.appmodule.DaggerActivityComponent;
import com.example.administrator.dagger2test.appmodule.DaggerAppComponent;

import javax.inject.Inject;

public class MainActivity extends AppCompatActivity {
    //标明需要注入的对象
//    @Named("context") // 标记
    @Inject
    PersonBean person;

//    @Named("name")
    @Inject
    PersonBean person2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

//        // 构造桥梁对象
//        MainComponent component = DaggerMainComponent.builder().mainModule(new MainModule(this)).build();
//        component.inject(this);



        // 依赖对象　Component
        AppComponent appCom = DaggerAppComponent.builder().appModule(new AppModule(this)).build();

        // 子类依赖对象 ，并注入
        DaggerActivityComponent.builder()
                .appComponent(appCom)
                .activityMoudule(new ActivityMoudule())
                .build()
                .inject(this);


//        // 依赖对象　Component
//        AppComponent appCom = DaggerAppComponent.builder().appModule(new AppModule(this)).build();
//
//        // 子类依赖对象 ，并注入
//        DaggerActivityComponent.builder()
//                .appComponent(appCom)
//                .activityMoudule(new ActivityMoudule())
//                .build()
//                .inject(this);





        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Log.e("main", "\t\t" + person.toString());
                Log.e("main", "\t\t" + person2.toString());
            }
        });
    }


}
